home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / MPW_C / ARC_SGML / SGMLH / SGMLMAIN.H < prev    next >
Text File  |  1991-07-24  |  3KB  |  59 lines

  1. /******************************************************************************/
  2. /* SGMLMAIN: Main interface to SGML services.
  3.  
  4.                "Good fences make good neighbors." -- Robert Frost
  5.  
  6. Preprocessor variable names are the only supported interface
  7. to data maintained by SGML.  They are defined in this file or in adl.h.
  8. The data is READ ONLY, and will last only until the next call to SGML,
  9. SGMLSET, SGMLRSET, or SGMLEND.
  10. */
  11. /******************************************************************************/
  12. /* Definitions for members of SGML return control blocks (RCBs).
  13.    The symbols RFD and RFT must be defined before including this file; e.g:
  14.      RFD (*(struct rcbdata *)srcbp)
  15.      RFT (*(struct rcbtag  *)srcbp)
  16. */
  17. /* Datatype abbreviations: C=unsigned char  S=string  U=unsigned int L=4 bytes
  18.                            A=array  P=ptr to structure N=name (see sgmlcb.h)
  19. */
  20. /* Data control block fields: processing instructions (rcbtype==SGMLPIS).
  21. */
  22. #define PDATA RFD.data            /*S  PI string. */
  23. #define PDATALEN RFD.datalen      /*U  Length of PI string. */
  24. #define PIESW ((RFD.contersw & 4))/*U  1=PIDATA entity returned. */
  25. /* Data control block fields: other data types.
  26. */
  27. #define CDATA RFD.data            /*S  CDATA content string. */
  28. #define CDATALEN RFD.datalen      /*U  Length of CDATA content string. */
  29. #define CONTERSW ((RFD.contersw &1)) /*U  1=CDATA or TAG out of context. */
  30. #define CDESW ((RFD.contersw & 2))/*U  1=CDATA entity returned. */
  31. #define SDESW ((RFD.contersw & 4))/*U  1=SDATA entity returned. */
  32. #define NDESW ((RFD.contersw & 8))/*U  1=NDATA entity returned. */
  33. #define NEPTR ((PNE)RFD.data)     /*P  Ptr to NDATA entity control block. */
  34. #define MARKUP RFD.data           /*A  Markup delimiter strings. */
  35. #define DTYPELEN RFD.datalen      /*U  Length of doc type name + len+EOS. */
  36. #define DOCTYPE RFD.data          /*S  Document type name (with len+EOS). */
  37. #define SGMLSCBS RFD.sgmlscbs     /*A  SGML source control block stack. */
  38. #define SGMLES   RFD.sgmles       /*I  Index of current source in scbs. */
  39. #define RCBTYPE  RFD.rcbtype      /*U  Return control block type. */
  40. /* Tag control block fields.
  41. */
  42. #define ALPTR (RFT.ru.al)         /*P  Ptr to SGML attribute list. */
  43. #define AENTL   (RFT.aentl)       /*P  ECBs ordered by AENTITY(S) tokens in al*/
  44. #define GI      (RFT.curgi+1)     /*N  GI of started or ended element. */
  45. #define GIDATA RFT.gidata         /*L  User data for GI. */
  46. #define OLDGI   (RFT.ru.oldgi)    /*S  GI of resumed element. */
  47. #define IDRHIT(n)(BITNIS(RFT.idrefl,n))/*L Nth IDREF token in AL:ID exists.*/
  48. #define TAGMIN  RFT.tagmin        /*U  Minimization for current tag. */
  49. #define TAGREAL (RFT.tagreal)     /*P  Dummy etd that implied this tag. */
  50. #define TAGRLNM ((UNCH *)RFT.tagreal)  /*P GI of tag that implied this tag.*/
  51. #define ETISW ((RFT.contersw & 2))/*U  1=NET delimiter enabled by ETI. */
  52. #define PEXSW ((RFT.contersw & 4))/*U  1=Element was plus exception. */
  53. #define MTYSW ((RFT.contersw & 8))/*U  1=Element is empty. */
  54. #define ETICTR  (RFT.etictr)      /*U  Number of active NET delimiters. */
  55. #define SRMNM  (RFT.srmnm)        /*S  Name of current SHORTREF map. */
  56. #define SRMCNT (RFT.contersw)     /*U  Number of SHORTREF maps defined. */
  57. #define FORMAT (RFT.format)       /*U  Format class for default processing.*/
  58. /******************************************************************************/
  59.